home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / disk / RCS / diskPrint.c,v < prev   
Encoding:
Text File  |  1992-08-31  |  22.8 KB  |  921 lines

  1. head     1.8;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.8
  10. date     92.08.31.12.20.44;  author voelker;  state Exp;
  11. branches ;
  12. next     1.7;
  13.  
  14. 1.7
  15. date     91.09.14.15.17.13;  author mendel;  state Exp;
  16. branches ;
  17. next     1.6;
  18.  
  19. 1.6
  20. date     90.10.10.09.45.08;  author rab;  state Exp;
  21. branches ;
  22. next     1.5;
  23.  
  24. 1.5
  25. date     90.03.16.17.41.19;  author jhh;  state Exp;
  26. branches ;
  27. next     1.4;
  28.  
  29. 1.4
  30. date     90.01.31.17.04.48;  author jhh;  state Exp;
  31. branches ;
  32. next     1.3;
  33.  
  34. 1.3
  35. date     89.09.25.12.32.37;  author jhh;  state Exp;
  36. branches ;
  37. next     1.2;
  38.  
  39. 1.2
  40. date     88.10.27.15.30.56;  author nelson;  state Exp;
  41. branches ;
  42. next     1.1;
  43.  
  44. 1.1
  45. date     88.06.02.12.54.20;  author brent;  state Exp;
  46. branches ;
  47. next     ;
  48.  
  49.  
  50. desc
  51. @Routines to print out disk header st!!
  52. data structures
  53. @
  54.  
  55.  
  56. 1.8
  57. log
  58. @lfs routines. checked in by jhh
  59. @
  60. text
  61. @/* 
  62.  * diskPrint.c --
  63.  *
  64.  *    Routines to print out data structures found on the disk.
  65.  *
  66.  * Copyright (C) 1987 Regents of the University of California
  67.  * All rights reserved.
  68.  * Permission to use, copy, modify, and distribute this
  69.  * software and its documentation for any purpose and without
  70.  * fee is hereby granted, provided that the above copyright
  71.  * notice appear in all copies.  The University of California
  72.  * makes no representations about the suitability of this
  73.  * software for any purpose.  It is provided "as is" without
  74.  * express or implied warranty.
  75.  */
  76.  
  77. #ifndef lint
  78. static char rcsid[] = "$Header: /sprite/src/lib/c/disk/RCS/diskPrint.c,v 1.7 91/09/14 15:17:13 mendel Exp Locker: voelker $ SPRITE (Berkeley)";
  79. #endif not lint
  80.  
  81. #include <stdio.h> 
  82. #include "disk.h"
  83.  
  84.  
  85. /*
  86.  *----------------------------------------------------------------------
  87.  *
  88.  * Disk_PrintDomainHeader --
  89.  *
  90.  *    Print out the domain header.  Used in testing.
  91.  *
  92.  * Results:
  93.  *    None.
  94.  *
  95.  * Side effects:
  96.  *    None.
  97.  *
  98.  *----------------------------------------------------------------------
  99.  */
  100. void
  101. Disk_PrintDomainHeader(headerPtr)
  102.     register Ofs_DomainHeader *headerPtr;/* Reference to domain header to print*/
  103. {
  104.     register Ofs_Geometry *geoPtr;
  105.     register int    index;
  106.  
  107.     printf("Domain Header <%x>\n", headerPtr->magic);
  108.     printf("First Cyl %d, num Cyls %d", headerPtr->firstCylinder,
  109.             headerPtr->numCylinders);
  110.     printf(", raw size %d kbytes\n", headerPtr->numCylinders *
  111.         headerPtr->geometry.sectorsPerTrack *
  112.         headerPtr->geometry.numHeads / 2);
  113.     printf("%-20s %10s %10s\n", "", "offset", "blocks");
  114.     printf("%-20s %10d %10d\n", "FD Bitmap", headerPtr->fdBitmapOffset,
  115.             headerPtr->fdBitmapBlocks);
  116.     printf("%-20s %10d %10d %10d\n", "File Desc", headerPtr->fileDescOffset,
  117.             headerPtr->numFileDesc/FSDM_FILE_DESC_PER_BLOCK,
  118.             headerPtr->numFileDesc);
  119.     printf("%-20s %10d %10d\n", "Bitmap", headerPtr->bitmapOffset,
  120.             headerPtr->bitmapBlocks);
  121.     printf("%-20s %10d %10d\n", "Data Blocks", headerPtr->dataOffset,
  122.             headerPtr->dataBlocks);
  123.     geoPtr = &headerPtr->geometry;
  124.     printf("Geometry\n");
  125.     printf("sectorsPerTrack %d, numHeads %d\n", geoPtr->sectorsPerTrack,
  126.                   geoPtr->numHeads);
  127.     printf("blocksPerRotSet %d, tracksPerRotSet %d\n",
  128.                geoPtr->blocksPerRotSet, geoPtr->tracksPerRotSet);
  129.     printf("rotSetsPerCyl %d, blocksPerCylinder %d\n",
  130.                geoPtr->rotSetsPerCyl, geoPtr->blocksPerCylinder);
  131.     printf("Offset    (Sorted)\n");
  132.     for (index = 0 ; index < geoPtr->blocksPerRotSet ; index++) {
  133.     printf("%8d %8d\n", geoPtr->blockOffset[index],
  134.                geoPtr->sortedOffsets[index]);
  135.     }
  136.  
  137.     printf(">> %d files, %d kbytes\n", headerPtr->numFileDesc,
  138.         headerPtr->dataBlocks * 4);
  139. }
  140.  
  141. /*
  142.  *----------------------------------------------------------------------
  143.  *
  144.  * Disk_PrintSummaryInfo --
  145.  *
  146.  *    Print out the summary information.
  147.  *
  148.  * Results:
  149.  *    None.
  150.  *
  151.  * Side effects:
  152.  *    None.
  153.  *
  154.  *----------------------------------------------------------------------
  155.  */
  156. void
  157. Disk_PrintSummaryInfo(summaryPtr)
  158.     register Ofs_SummaryInfo *summaryPtr; /* Reference to summary info to print */
  159. {
  160.     printf("\"%s\" (%d) \t%d Kbytes free, %d file descriptors free\n",
  161.         summaryPtr->domainPrefix, 
  162.         summaryPtr->domainNumber,
  163.         summaryPtr->numFreeKbytes,
  164.         summaryPtr->numFreeFileDesc);
  165.     printf("Attach seconds: %d\n");
  166.     printf("Detach seconds: %d\n");
  167.     if (summaryPtr->flags & OFS_DOMAIN_NOT_SAFE) {
  168.     printf("OFS_DOMAIN_NOT_SAFE\n");
  169.     }
  170.     if (summaryPtr->flags & OFS_DOMAIN_ATTACHED_CLEAN) {
  171.     printf("OFS_DOMAIN_ATTACHED_CLEAN\n");
  172.     }
  173.     if (summaryPtr->flags & OFS_DOMAIN_TIMES_VALID) {
  174.     printf("OFS_DOMAIN_TIMES_VALID\n");
  175.     }
  176.     if (summaryPtr->flags & OFS_DOMAIN_JUST_CHECKED) {
  177.     printf("OFS_DOMAIN_JUST_CHECKED\n");
  178.     }
  179. }
  180.  
  181. /*
  182.  *----------------------------------------------------------------------
  183.  *
  184.  * Disk_PrintFileDescBitmap --
  185.  *
  186.  *    Print out the file descriptor bitmap.
  187.  *
  188.  * Results:
  189.  *    None.
  190.  *
  191.  * Side effects:
  192.  *    None.
  193.  *
  194.  *----------------------------------------------------------------------
  195.  */
  196. void
  197. Disk_PrintFileDescBitmap(headerPtr, bitmap)
  198.     Ofs_DomainHeader    *headerPtr;    /* Pointer to disk header info. */
  199.     char        *bitmap;    /* Pointer to file desc bit map. */
  200. {
  201.     register int index;
  202.  
  203.     printf("File Descriptor bitmap\n");
  204.     for (index = 0;
  205.      index < headerPtr->fdBitmapBlocks * FS_BLOCK_SIZE;) {
  206.     if ((index % 32) == 0) {
  207.         printf("%6d ", index * BITS_PER_BYTE);
  208.         if (index * BITS_PER_BYTE > headerPtr->numFileDesc) {
  209.         printf(" (The rest of the map is not used)\n");
  210.         break;
  211.         }
  212.     }
  213.     printf("%02x", bitmap[index] & 0xff);
  214.     index++;
  215.     if ((index % 32) == 0) {
  216.         printf("\n");
  217.     }
  218.     }
  219. }
  220.  
  221. /*
  222.  *----------------------------------------------------------------------
  223.  *
  224.  * Disk_PrintDataBlockBitmap --
  225.  *
  226.  *    Print out the data block bitmap.
  227.  *
  228.  * Results:
  229.  *    None.
  230.  *
  231.  * Side effects:
  232.  *    None.
  233.  *
  234.  *----------------------------------------------------------------------
  235.  */
  236. void
  237. Disk_PrintDataBlockBitmap(headerPtr, bitmap)
  238.     Ofs_DomainHeader    *headerPtr;    /* Ptr to disk header info. */
  239.     char        *bitmap;    /* Ptr to data block bit map. */
  240. {
  241.     register int index;
  242.  
  243.     printf("Data block bitmap:\n");
  244.     for (index = 0;
  245.      index < headerPtr->bitmapBlocks * FS_BLOCK_SIZE;) {
  246.     if ((index % 32) == 0) {
  247.         printf("%6d ", index * BITS_PER_BYTE);
  248.         if (index * BITS_PER_BYTE >
  249.         headerPtr->dataBlocks * DISK_KBYTES_PER_BLOCK) {
  250.         printf(" (The rest of the bitmap is not used)\n");
  251.         break;
  252.         }
  253.     }
  254.     printf("%02x", bitmap[index] & 0xff);
  255.     index++;
  256.     if ((index % 32) == 0) {
  257.         printf("\n");
  258.     }
  259.     }
  260. }
  261.  
  262. /*
  263.  *----------------------------------------------------------------------
  264.  *
  265.  * Disk_PrintDirEntry --
  266.  *
  267.  *    Print out one directory entry
  268.  *
  269.  * Results:
  270.  *    None.
  271.  *
  272.  * Side effects:
  273.  *    None.
  274.  *
  275.  *----------------------------------------------------------------------
  276.  */
  277. void
  278. Disk_PrintDirEntry(dirEntryPtr)
  279.     Fslcl_DirEntry *dirEntryPtr;    /* Ptr to directory entry. */
  280. {
  281.     printf("\"%-15s\", File Number = %d, Rec Len = %d, Name Len = %d\n",
  282.            dirEntryPtr->fileName, dirEntryPtr->fileNumber,
  283.            dirEntryPtr->recordLength, dirEntryPtr->nameLength);
  284. }
  285.  
  286. /*
  287.  *----------------------------------------------------------------------
  288.  *
  289.  * Disk_PrintLabel--
  290.  *
  291.  *    Print the contents of a Disk_Label.
  292.  *
  293.  * Results:
  294.  *    None.
  295.  *
  296.  * Side effects:
  297.  *    Stuff is printed.
  298.  *
  299.  *----------------------------------------------------------------------
  300.  */
  301.  
  302. void
  303. Disk_PrintLabel(labelPtr)
  304.     Disk_Label        *labelPtr;    /* Label to be printed.*/
  305. {
  306.     int    i;
  307.     int first, last, cyls;
  308.  
  309.     printf("Ascii label: \"%s\"\n", labelPtr->asciiLabel);
  310.     printf("Length of ascii label: %d\n", labelPtr->asciiLabelLen);
  311.     printf("The disk has a %s label.\n", 
  312.     Disk_GetLabelTypeName(labelPtr->labelType));
  313.     printf("The disk label is in sector %d\n", labelPtr->labelSector);
  314.     printf("Number of heads: %d\n", labelPtr->numHeads);
  315.     printf("Number of sectors per track: %d\n", labelPtr->numSectors);
  316.     printf("Number of cylinders: %d\n", labelPtr->numCylinders);
  317.     printf("Number of alternate cylinders: %d\n", labelPtr->numAltCylinders);
  318.     printf("Starting boot sector: %d\n", labelPtr->bootSector);
  319.     printf("Number of boot sectors: %d\n", labelPtr->numBootSectors);
  320.     printf("Start of summary info: %d\n", labelPtr->summarySector);
  321.     printf("Number of summary sectors: %d\n", labelPtr->numSummarySectors);
  322.     printf("Start of domain header: %d\n", labelPtr->domainSector);
  323.     printf("Number of domain header sectors: %d\n", labelPtr->numDomainSectors);
  324.     printf("Number of disk partitions: %d\n", labelPtr->numPartitions);
  325.     printf("Partition map:\n");
  326.     for (i = 0; i < labelPtr->numPartitions; i++) {
  327.     first = labelPtr->partitions[i].firstCylinder;
  328.     cyls = labelPtr->partitions[i].numCylinders;
  329.     last = (cyls > 0) ? (cyls + first - 1) : first;
  330.     printf("%c: First %4d Last %4d Num %4d (%7d sectors)\n",
  331.         i + 'a', first, last, cyls,
  332.         cyls *  labelPtr->numHeads * labelPtr->numSectors);
  333.     }
  334. }
  335.  
  336. /*
  337.  *----------------------------------------------------------------------
  338.  *
  339.  * Disk_GetLabelTypeName --
  340.  *
  341.  *    Returns a string which is the name of the machine-specific
  342.  *    label type.
  343.  *
  344.  * Results:
  345.  *    Character string name of label type if the type parameter is
  346.  *    valid, NULL otherwise
  347.  *
  348.  * Side effects:
  349.  *    None.
  350.  *
  351.  *----------------------------------------------------------------------
  352.  */
  353.  
  354. char *
  355. Disk_GetLabelTypeName(labelType)
  356.     Disk_NativeLabelType labelType;    /* Type of machine specific label. */
  357. {
  358.     static char *names[3] = {"NO LABEL", "Sun", "Dec"};
  359.  
  360.     if (labelType < 0 || labelType > 2) {
  361.     return NULL;
  362.     }
  363.     return names[labelType];
  364. }
  365.  
  366.  
  367. /*
  368.  *----------------------------------------------------------------------
  369.  *
  370.  * Disk_PrintLfsSuperBlockHdr
  371.  *
  372.  *    Print out the contents of the LFS SuperBlock header
  373.  *
  374.  * Results:
  375.  *    None.
  376.  *
  377.  * Side effects:
  378.  *    Prints stuff to stdout.
  379.  *
  380.  *----------------------------------------------------------------------
  381.  */
  382. void
  383. Disk_PrintLfsSuperBlockHdr(headerPtr)
  384.     LfsSuperBlockHdr *headerPtr;
  385. {
  386.     if (headerPtr == NULL) {
  387.     return;
  388.     }
  389.     printf("LFS SuperBlock magic:                0x%x\n", headerPtr -> magic);
  390.     printf("LFS version:                         %d\n", headerPtr -> version);
  391.     printf("LFS block size in bytes:             %d\n", 
  392.        headerPtr -> blockSize);
  393.     printf("Maximum number of checkpoint blocks: %d\n", 
  394.        headerPtr -> maxCheckPointBlocks);
  395.     printf("Checkpoint #0 offset:                %d\n", 
  396.        headerPtr -> checkPointOffset[0]);
  397.     printf("Checkpoint #1 offset:                %d\n", 
  398.        headerPtr -> checkPointOffset[1]);
  399.     printf("Segemented log offset:               %d\n", 
  400.        headerPtr -> logStartOffset);
  401.     printf("Frequency of checkpoint in seconds:  %d\n",
  402.        headerPtr -> checkpointInterval);
  403.     printf("Maximum number of blocks to clean at one time: %d\n",
  404.        headerPtr -> maxNumCacheBlocks);
  405.     printf("Unique ID for file system:           %d\n",
  406.        headerPtr -> domainUID);
  407.     printf("Partition that the file system was built in: %c\n",
  408.        headerPtr -> partition);
  409. }
  410.  
  411. /*
  412.  *----------------------------------------------------------------------
  413.  *
  414.  * Disk_PrintLfsStableMemParams
  415.  *
  416.  *    Print out the contents of a LFS StableMemParam structure
  417.  *
  418.  * Results:
  419.  *    None.
  420.  *
  421.  * Side effects:
  422.  *    Prints stuff to stdout.
  423.  *
  424.  *----------------------------------------------------------------------
  425.  */
  426. void
  427. Disk_PrintLfsStableMemParams(stableMemPtr)
  428.     LfsStableMemParams *stableMemPtr;
  429. {
  430.     if (stableMemPtr == NULL) {
  431.     return;
  432.     }
  433.     printf("Stable memory type:          %d\n", stableMemPtr -> memType);
  434.     printf("Block size in bytes:         %d\n", stableMemPtr -> blockSize);
  435.     printf("Size of each entry in bytes: %d\n", stableMemPtr -> entrySize);
  436.     printf("Maximum number of entries:   %d\n", stableMemPtr -> maxNumEntries);
  437.     printf("Number of entries per block: %d\n", 
  438.        stableMemPtr -> entriesPerBlock);
  439.     printf("Maximum nmber of blocks:     %d\n", stableMemPtr -> maxNumBlocks);
  440. }
  441.  
  442. /*
  443.  *----------------------------------------------------------------------
  444.  *
  445.  * Disk_PrintLfsDescMapParams
  446.  *
  447.  *    Print out the contents of a LFS DescMapParams structure
  448.  *
  449.  * Results:
  450.  *    None.
  451.  *
  452.  * Side effects:
  453.  *    Prints stuff to stdout.
  454.  *
  455.  *----------------------------------------------------------------------
  456.  */
  457. void
  458. Disk_PrintLfsDescMapParams(descMapPtr)
  459.     LfsDescMapParams *descMapPtr;
  460. {
  461.     if (descMapPtr == NULL) {
  462.     return;
  463.     }
  464.     printf("Version number:                 %d\n", descMapPtr -> version);
  465.     printf("Maximum size in descriptor map: %d\n\n", descMapPtr -> maxDesc);
  466.     printf("Index Parameters for the descriptor map:\n");
  467.     Disk_PrintLfsStableMemParams(&(descMapPtr -> stableMem));
  468. }
  469.  
  470. /*
  471.  *----------------------------------------------------------------------
  472.  *
  473.  * Disk_PrintLfsSegUsageParams
  474.  *
  475.  *    Print out the contents of a LFS SegUsageParams structure
  476.  *
  477.  * Results:
  478.  *    None.
  479.  *
  480.  * Side effects:
  481.  *    Prints stuff to stdout.
  482.  *
  483.  *----------------------------------------------------------------------
  484.  */
  485. void
  486. Disk_PrintLfsSegUsageParams(segUsagePtr)
  487.     LfsSegUsageParams *segUsagePtr;
  488. {
  489.     if (segUsagePtr == NULL) {
  490.     return;
  491.     }
  492.     printf("Number of bytes in each segment:            %d\n", 
  493.        segUsagePtr -> segmentSize);
  494.     printf("Number of segments in file system:          %d\n", 
  495.        segUsagePtr -> numberSegments);
  496.     printf("Minimum number of clean segments allowed:   %d\n", 
  497.        segUsagePtr -> minNumClean);
  498.     printf("Minimum number of free blocks allowed:      %d\n", 
  499.        segUsagePtr -> minFreeBlocks);
  500.     printf("Number of allowed waste blocks per segment: %d\n", 
  501.        segUsagePtr -> wasteBlocks);
  502.     printf("Number of segments to clean at a time:      %d\n\n", 
  503.        segUsagePtr -> numSegsToClean);
  504.     printf("Index Parameters for the Segment Usage Map:\n");
  505.     Disk_PrintLfsStableMemParams(&(segUsagePtr -> stableMem));
  506. }
  507.  
  508. /*
  509.  *----------------------------------------------------------------------
  510.  *
  511.  * Disk_PrintLfsFileLayoutParams
  512.  *
  513.  *    Print out the contents of a LFS FileLayoutParams structure
  514.  *
  515.  * Results:
  516.  *    None.
  517.  *
  518.  * Side effects:
  519.  *    Prints stuff to stdout.
  520.  *
  521.  *----------------------------------------------------------------------
  522.  */
  523. void
  524. Disk_PrintLfsFileLayoutParams(fileLayoutPtr)
  525.     LfsFileLayoutParams *fileLayoutPtr;
  526. {
  527.     if (fileLayoutPtr == NULL) {
  528.     return;
  529.     }
  530.     printf("Number of file descriptors to pack per block: %d\n",
  531.        fileLayoutPtr -> descPerBlock);
  532. }
  533.  
  534. /*
  535.  *----------------------------------------------------------------------
  536.  *
  537.  * Disk_PrintLfsSuperBlock
  538.  *
  539.  *    Print out the contents of a LFS SuperBlock
  540.  *
  541.  * Results:
  542.  *    None.
  543.  *
  544.  * Side effects:
  545.  *    Prints stuff to stdout.
  546.  *
  547.  *----------------------------------------------------------------------
  548.  */
  549. void
  550. Disk_PrintLfsSuperBlock(superPtr)
  551.     LfsSuperBlock *superPtr;
  552. {
  553.     if (superPtr == NULL) {
  554.     return;
  555.     }
  556.     printf("SuperBlock Header:\n");
  557.     Disk_PrintLfsSuperBlockHdr(&(superPtr -> hdr));
  558.     printf("\nDescriptor Map Parameters:\n");
  559.     Disk_PrintLfsDescMapParams(&(superPtr -> descMap));
  560.     printf("\nSegment Usage Map Parameters:\n");
  561.     Disk_PrintLfsSegUsageParams(&(superPtr -> usageArray));
  562.     printf("\nFile Layout Parameters:\n");
  563.     Disk_PrintLfsFileLayoutParams(&(superPtr -> fileLayout));
  564. }
  565.  
  566. /*
  567.  *----------------------------------------------------------------------
  568.  *
  569.  * Disk_PrintLfsCheckPointHdr
  570.  *
  571.  *    Print out the contents of a LFS CheckPointHdr
  572.  *
  573.  * Results:
  574.  *    None.
  575.  *
  576.  * Side effects:
  577.  *    Prints stuff to stdout.
  578.  *
  579.  *----------------------------------------------------------------------
  580.  */
  581. void
  582. Disk_PrintLfsCheckPointHdr(headerPtr)
  583.     LfsCheckPointHdr *headerPtr;
  584. {
  585.     if (headerPtr == NULL) {
  586.     return;
  587.     }
  588.     printf("Timestamp of the checkpoint:      %d\n", headerPtr -> timestamp);
  589.     printf("Size of the checkpoint in bytes:  %d\n", headerPtr -> size);
  590.     printf("Region write version number:      %d\n", headerPtr -> version);
  591.     printf("Last prefix used for this domain: %s\n", headerPtr -> 
  592.        domainPrefix);
  593.     printf("Last domain run under:            %d\n", headerPtr -> 
  594.        domainNumber);
  595.     printf("Time the disk was attached:       %d\n", headerPtr -> 
  596.        attachSeconds);
  597.     printf("Time the disk was off-lined:      %d\n", headerPtr -> 
  598.        detachSeconds);
  599.     printf("Sprite ID of server:              %d\n", headerPtr -> serverID);
  600. }
  601.  
  602. /*
  603.  *----------------------------------------------------------------------
  604.  *
  605.  * Disk_PrintLfsCheckPointRegion
  606.  *
  607.  *    Print out the contents of a LFS CheckPointRegion
  608.  *
  609.  * Results:
  610.  *    None.
  611.  *
  612.  * Side effects:
  613.  *    Prints stuff to stdout.
  614.  *
  615.  *----------------------------------------------------------------------
  616.  */
  617. void
  618. Disk_PrintLfsCheckPointRegion(regionPtr)
  619.     LfsCheckPointRegion *regionPtr;
  620. {
  621.     if (regionPtr == NULL) {
  622.     return;
  623.     }
  624.     printf("Region type:             %s\n", 
  625.        (regionPtr -> type == LFS_FILE_LAYOUT_MOD) ? "LFS_FILE_LAYOUT_MOD" :
  626.        ((regionPtr -> type == LFS_DESC_MAP_MOD) ? "LFS_DESC_MAP_MOD" :
  627.        "LFS_SEG_USAGE_MOD"));
  628.     printf("Size of region in bytes: %d\n", regionPtr -> size);
  629. }
  630.  
  631. /*
  632.  *----------------------------------------------------------------------
  633.  *
  634.  * Disk_PrintLfsCheckPointTrailer
  635.  *
  636.  *    Print out the contents of a LFS CheckPointTrailer
  637.  *
  638.  * Results:
  639.  *    None.
  640.  *
  641.  * Side effects:
  642.  *    Prints stuff to stdout.
  643.  *
  644.  *----------------------------------------------------------------------
  645.  */
  646. void
  647. Disk_PrintLfsCheckPointTrailer(trailerPtr)
  648.     LfsCheckPointTrailer *trailerPtr;
  649. {
  650.     if (trailerPtr == NULL) {
  651.     return;
  652.     }
  653.     printf("Timestamp of the checkpoint: %d\n", trailerPtr -> timestamp);
  654.     printf("Checksum of the checkpoint:  %d\n", trailerPtr -> checkSum);
  655. }
  656.  
  657. @
  658.  
  659.  
  660. 1.7
  661. log
  662. @Changes to reflect the old Sprite file system name being OFS and the
  663. addition of LFS.
  664. @
  665. text
  666. @d18 1
  667. a18 1
  668. static char rcsid[] = "$Header: /sprite/src/lib/c/disk/RCS/diskPrint.c,v 1.6 90/10/10 09:45:08 rab Exp Locker: mendel $ SPRITE (Berkeley)";
  669. d304 291
  670. @
  671.  
  672.  
  673. 1.6
  674. log
  675. @*** empty log message ***
  676. @
  677. text
  678. @d18 1
  679. a18 1
  680. static char rcsid[] = "$Header: /sprite/src/lib/c/disk/RCS/diskPrint.c,v 1.5 90/03/16 17:41:19 jhh Exp Locker: rab $ SPRITE (Berkeley)";
  681. d42 1
  682. a42 1
  683.     register Fsdm_DomainHeader *headerPtr;/* Reference to domain header to print*/
  684. d44 1
  685. a44 1
  686.     register Fsdm_Geometry *geoPtr;
  687. d98 1
  688. a98 1
  689.     register Fsdm_SummaryInfo *summaryPtr; /* Reference to summary info to print */
  690. d107 2
  691. a108 2
  692.     if (summaryPtr->flags & FSDM_DOMAIN_NOT_SAFE) {
  693.     printf("FSDM_DOMAIN_NOT_SAFE\n");
  694. d110 5
  695. a114 5
  696.     if (summaryPtr->flags & FSDM_DOMAIN_ATTACHED_CLEAN) {
  697.     printf("FSDM_DOMAIN_ATTACHED_CLEAN\n");
  698.     }
  699.     if (summaryPtr->flags & FSDM_DOMAIN_TIMES_VALID) {
  700.     printf("FSDM_DOMAIN_TIMES_VALID\n");
  701. d116 2
  702. a117 2
  703.     if (summaryPtr->flags & FSDM_DOMAIN_JUST_CHECKED) {
  704.     printf("FSDM_DOMAIN_JUST_CHECKED\n");
  705. d138 1
  706. a138 1
  707.     Fsdm_DomainHeader    *headerPtr;    /* Pointer to disk header info. */
  708. d178 1
  709. a178 1
  710.     Fsdm_DomainHeader    *headerPtr;    /* Ptr to disk header info. */
  711. @
  712.  
  713.  
  714. 1.5
  715. log
  716. @replaced DiskInfo abstraction with Disk_Label
  717. @
  718. text
  719. @d18 1
  720. a18 1
  721. static char rcsid[] = "$Header: /sprite/src/lib/c/disk/RCS/diskPrint.c,v 1.4 90/01/31 17:04:48 jhh Exp Locker: jhh $ SPRITE (Berkeley)";
  722. @
  723.  
  724.  
  725. 1.4
  726. log
  727. @made printing of summary info better
  728. @
  729. text
  730. @d18 1
  731. a18 1
  732. static char rcsid[] = "$Header: /sprite/src/lib/c/disk/RCS/diskPrint.c,v 1.3 89/09/25 12:32:37 jhh Exp Locker: jhh $ SPRITE (Berkeley)";
  733. d22 1
  734. a22 1
  735. #include "diskUtils.h"
  736. d224 80
  737. @
  738.  
  739.  
  740. 1.3
  741. log
  742. @Conforms to new fs module structure
  743. @
  744. text
  745. @d18 1
  746. a18 1
  747. static char rcsid[] = "$Header: /sprite/src/lib/c/disk/RCS/diskPrint.c,v 1.2 88/10/27 15:30:56 nelson Exp Locker: jhh $ SPRITE (Berkeley)";
  748. d100 4
  749. a103 2
  750.     printf("\"%s\"\t%d Kbytes free, %d file descriptors free\n",
  751.         summaryPtr->domainPrefix, summaryPtr->numFreeKbytes,
  752. d105 14
  753. @
  754.  
  755.  
  756. 1.2
  757. log
  758. @Ported to the new C library.
  759. @
  760. text
  761. @d18 1
  762. a18 1
  763. static char rcsid[] = "$Header: diskPrint.c,v 1.1 88/06/02 12:54:20 brent Exp $ SPRITE (Berkeley)";
  764. d42 1
  765. a42 1
  766.     register FsDomainHeader *headerPtr;/* Reference to domain header to print*/
  767. d44 1
  768. a44 1
  769.     register FsGeometry *geoPtr;
  770. d57 1
  771. a57 1
  772.             headerPtr->numFileDesc/FS_FILE_DESC_PER_BLOCK,
  773. d98 1
  774. a98 1
  775.     register FsSummaryInfo *summaryPtr; /* Reference to summary info to print */
  776. d122 1
  777. a122 1
  778.     FsDomainHeader    *headerPtr;    /* Pointer to disk header info. */
  779. d162 1
  780. a162 1
  781.     FsDomainHeader    *headerPtr;    /* Ptr to disk header info. */
  782. d203 1
  783. a203 1
  784.     FsDirEntry *dirEntryPtr;    /* Ptr to directory entry. */
  785. @
  786.  
  787.  
  788. 1.1
  789. log
  790. @Initial revision
  791. @
  792. text
  793. @d18 1
  794. a18 1
  795. static char rcsid[] = "$Header: fsDiskUtils.c,v 1.4 87/06/02 11:20:32 nelson Exp $ SPRITE (Berkeley)";
  796. d21 1
  797. a21 2
  798. #include "sprite.h"
  799. #include "io.h"
  800. a22 2
  801. #include "mem.h"
  802. #include "byte.h"
  803. d28 1
  804. a28 1
  805.  * PrintDomainHeader --
  806. d41 2
  807. a42 2
  808. PrintDomainHeader(headerPtr)
  809.     register FsDomainHeader *headerPtr;/* Reference to domain header to print */
  810. d44 2
  811. a45 2
  812.     register FsGeometry *geoPtr;/* Reference to domain geometry info */
  813.     register int index;
  814. d47 2
  815. a48 2
  816.     Io_Print("Domain Header <%x>\n", headerPtr->magic);
  817.     Io_Print("First Cyl %d, num Cyls %d", headerPtr->firstCylinder,
  818. d50 1
  819. a50 1
  820.     Io_Print(", raw size %d kbytes\n", headerPtr->numCylinders *
  821. d53 2
  822. a54 2
  823.     Io_Print("%-20s %10s %10s\n", "", "offset", "blocks");
  824.     Io_Print("%-20s %10d %10d\n", "FD Bitmap", headerPtr->fdBitmapOffset,
  825. d56 2
  826. a57 2
  827.     Io_Print("%-20s %10d %10d %10d\n", "File Desc", headerPtr->fileDescOffset,
  828.             headerPtr->numFileDesc/FILE_DESC_PER_BLOCK,
  829. d59 1
  830. a59 1
  831.     Io_Print("%-20s %10d %10d\n", "Bitmap", headerPtr->bitmapOffset,
  832. d61 1
  833. a61 1
  834.     Io_Print("%-20s %10d %10d\n", "Data Blocks", headerPtr->dataOffset,
  835. d64 2
  836. a65 2
  837.     Io_Print("Geometry\n");
  838.     Io_Print("sectorsPerTrack %d, numHeads %d\n", geoPtr->sectorsPerTrack,
  839. d67 1
  840. a67 1
  841.     Io_Print("blocksPerRotSet %d, tracksPerRotSet %d\n",
  842. d69 1
  843. a69 1
  844.     Io_Print("rotSetsPerCyl %d, blocksPerCylinder %d\n",
  845. d71 1
  846. a71 1
  847.     Io_Print("Offset    (Sorted)\n");
  848. d73 1
  849. a73 1
  850.     Io_Print("%8d %8d\n", geoPtr->blockOffset[index],
  851. d77 1
  852. a77 1
  853.     Io_Print(">> %d files, %d kbytes\n", headerPtr->numFileDesc,
  854. d84 1
  855. a84 1
  856.  * PrintSummaryInfo --
  857. d97 1
  858. a97 1
  859. PrintSummaryInfo(summaryPtr)
  860. d100 1
  861. a100 1
  862.     Io_Print("\"%s\"\t%d Kbytes free, %d file descriptors free\n",
  863. d108 1
  864. a108 1
  865.  * PrintFileDescBitmap --
  866. d121 3
  867. a123 3
  868. PrintFileDescBitmap(headerPtr, bitmap)
  869.     FsDomainHeader *headerPtr;
  870.     char *bitmap;
  871. d127 1
  872. a127 1
  873.     Io_Print("File Descriptor bitmap\n");
  874. d131 1
  875. a131 1
  876.         Io_Print("%6d ", index * BITS_PER_BYTE);
  877. d133 1
  878. a133 1
  879.         Io_Print(" (The rest of the map is not used)\n");
  880. d137 1
  881. a137 1
  882.     Io_Print("%02x", bitmap[index] & 0xff);
  883. d140 1
  884. a140 1
  885.         Io_Print("\n");
  886. d148 1
  887. a148 1
  888.  * PrintDataBlockBitmap --
  889. d161 3
  890. a163 3
  891. PrintDataBlockBitmap(headerPtr, bitmap)
  892.     FsDomainHeader *headerPtr;
  893.     char *bitmap;
  894. d167 1
  895. a167 1
  896.     Io_Print("Data block bitmap:\n");
  897. d171 1
  898. a171 1
  899.         Io_Print("%6d ", index * BITS_PER_BYTE);
  900. d173 2
  901. a174 2
  902.         headerPtr->dataBlocks * KBYTES_PER_BLOCK) {
  903.         Io_Print(" (The rest of the bitmap is not used)\n");
  904. d178 1
  905. a178 1
  906.     Io_Print("%02x", bitmap[index] & 0xff);
  907. d181 1
  908. a181 1
  909.         Io_Print("\n");
  910. d189 1
  911. a189 1
  912.  * PrintDirEntry --
  913. d202 2
  914. a203 2
  915. PrintDirEntry(dirEntryPtr)
  916.     FsDirEntry *dirEntryPtr;
  917. d205 1
  918. a205 1
  919.     Io_Print("\"%-15s\", File Number = %d, Rec Len = %d, Name Len = %d\n",
  920. @
  921.